﻿using DMSkin.Core.MVVM;
using LiteDB;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CloudMusic.Model
{
    /// <summary>
    /// 用户信息-登录
    /// </summary>
   public class UserInfoModel
    {
   
    }
    public class Account
    {
        /// <summary>
        /// 
        /// </summary>
        public long id { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string userName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int type { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int status { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int whitelistAuthority { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long createTime { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string salt { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int tokenVersion { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int ban { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int baoyueVersion { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int donateVersion { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int vipType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long viptypeVersion { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public bool anonimousUser { get; set; }
    }

    public class Profile
    {
        /// <summary>
        /// 
        /// </summary>
        public int vipType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int gender { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int accountStatus { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long avatarImgId { get; set; }
        /// <summary>
        /// Jun丶陌笑
        /// </summary>
        public string nickname { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long birthday { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Int32 city { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int userType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long backgroundImgId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string avatarUrl { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Int32 province { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public bool defaultAvatar { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int djStatus { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Experts experts { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public bool mutual { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string remarkName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<string> expertTags { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int authStatus { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string avatarImgIdStr { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string backgroundImgIdStr { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string description { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long userId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public bool followed { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string backgroundUrl { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string detailDescription { get; set; }
        /// <summary>
        /// 雨儿的夫君！
        /// </summary>
        public string signature { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int authority { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string avatarImgId_str { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int followeds { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int follows { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int eventCount { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int playlistCount { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int playlistBeSubscribedCount { get; set; }
    }

    public class BindingsItem
    {
        /// <summary>
        /// 
        /// </summary>
        public string tokenJsonStr { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long expiresIn { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public bool expired { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long bindingTime { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long userId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long refreshTime { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string url { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public long id { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int type { get; set; }
    }

    public class UserInfoRoot
    {
        /// <summary>
        /// 
        /// </summary>
        public int loginType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int code { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Account account { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string token { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Profile profile { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<BindingsItem> bindings { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string cookie { get; set; }
    }
    public class userInfo: ViewModelBase
    {
        [BsonId]
        public Guid Guid { get; set; }
        /// <summary>
        /// id
        /// </summary>
        private long userId;
        public long UserId
        {
            get { return userId; }
            set { userId = value;OnPropertyChanged("UserId"); }
        }
        /// <summary>
        /// 介绍
        /// </summary>
        private string signature;
        public string Signature
        {
            get { return signature; }
            set { signature = value;OnPropertyChanged("Signature"); }
        }
        /// <summary>
        /// 头像
        /// </summary>
        private string avatarUrl;
        public string AvatarUrl
        {
            get { return avatarUrl; }
            set { avatarUrl = value;OnPropertyChanged("AvatarUrl"); }
        }
        /// <summary>
        /// 性别
        /// </summary>
        private int gender;
        public int Gender
        {
            get { return gender; }
            set { gender = value;OnPropertyChanged("Gender"); }
        }
        /// <summary>
        /// 出生年月日
        /// </summary>
        private long birthday;
        public long Birthday
        {
            get { return birthday; }
            set { birthday = value; OnPropertyChanged("Birthday"); }
        }
        /// <summary>
        /// 省份
        /// </summary>
        private Int32 province;
        public Int32 Province
        {
            get { return province; }
            set { province = value;OnPropertyChanged("Province"); }
        }
        /// <summary>
        /// 城市
        /// </summary>
        private Int32 city;
        public Int32 City
        {
            get { return city; }
            set { city = value;OnPropertyChanged("City"); }
        }
        /// <summary>
        /// 动态
        /// </summary>
        private int eventCount;
        public int EventCount
        {
            get { return eventCount; }
            set { eventCount = value;OnPropertyChanged("EventCount"); }
        }
        /// <summary>
        /// 关注数
        /// </summary>
        private long follows;
        public long Follows
        {
            get { return follows; }
            set { follows = value;OnPropertyChanged("Follows"); }
        }
        /// <summary>
        /// 粉丝数
        /// </summary>
        private long followeds;
        public long Followeds
        {
            get { return followeds; }
            set { followeds = value;OnPropertyChanged("Followeds"); }
        }
        /// <summary>
        /// vip类型 -11 连续包月用户，
        /// </summary>
        private int vipType;
        public int VipType
        {
            get { return vipType; }
            set { vipType = value;OnPropertyChanged("VipType"); }
        }
        /// <summary>
        /// 昵称
        /// </summary>
        private string nickname;
        public string Nickname
        {
            get { return nickname; }
            set { nickname = value;OnPropertyChanged("Nickname"); }
        }
        /// <summary>
        /// cookie
        /// </summary>
        private string cookie;
        public string Cookie
        {
            get { return cookie; }
            set { cookie = value;OnPropertyChanged("Cookie"); }
        }
        /// <summary>
        /// 签到状态
        /// </summary>
        private int siginIn = 0;
        public int SiginIn
        {
            get { return siginIn; }
            set { siginIn = value;OnPropertyChanged("SiginIn"); }
        }
        /// <summary>
        /// 登录状态
        /// </summary>
        private int loginState = 0;
        public int LonginState
        {
            get { return loginState; }
            set { loginState = value; OnPropertyChanged("LonginState"); }
        }
        /// <summary>
        /// 是否勾选自动登录
        /// </summary>
        private bool isChecked = false;
        public bool IsChecked
        {
            get { return isChecked; }
            set { isChecked = value;OnPropertyChanged("IsChecked"); }
        }
    }
}
